package br.com.jvet.bean;

import java.util.List;

import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.TypedQuery;

public class GenericDAO extends DAO implements GenericBean{

	@PersistenceContext
	private EntityManager em;

	@Override
	public <E> void incluir(E obj) {
		em.persist(obj);
	}

	@Override
	public <E> void alterar(E obj) {
		em.merge(obj);
	}

	@Override
	public <E> void excluir(E obj) {
		em.remove(obj);

	}

	@Override
	public <E> Object consultar(E obj) {
		return em.find(obj.getClass(), obj);
	}

	@Override
	public <E> List<E> listar() {
		// TODO Auto-generated method stub
		return null;
	}

//	@SuppressWarnings("unchecked")
//	@Override
//	public <E> List<E> listar() {
//		TypedQuery<?> query = this.em.createQuery("SELECT u FROM " + E
//				+ " u", E);
//		return (List<E>) query.getResultList();
//	}

	// @Override
	// public <E>List<E> listar(Class c,String tabela) {
	// TypedQuery<?> query = this.em.createQuery(
	// "SELECT u FROM "+tabela+ " u", c);
	// return query.getResultList();
	//
	// }

}
